A digital filter is a device which converts an input sampled signal into another sampled, output signal having predetermined frequency response characteristics. A sampled signal is understood to mean a digital signal encoded by a predetermined natural number N of bits. The number N determines the accuracy or resolution of the filter.
Digital filters are used primarily in digital oscilloscopes, spectrum analyzers, and audio and video signal processors. Their use is ever-expanding, due to the many advantages that they afford over corresponding analog filters. For example, for the same function, digital filters allow very narrow transmission bands to be achieved and are also more stable, both over time and with respect to variations in power supply and operating temperature, than analog filters.
It is current practice to implement digital filters in the form of an integrated circuit using digital multipliers and adders. Digital multipliers may be arranged to include a non-volatile memory structure of the so-called "look-up table" type, wherein the products of the input sample signals and the filter transfer function coefficients are stored.
An example programmable filter processor (PFP) embodying such a memory structure is shown in FIG. 2 and is described in detail, for example, in "30-MSamples/s Programmable Filter Processor", IEEE Journal of Solid-State Circuits, Vol. 25, No. 6, December 1990, pp. 1502-1509. The memory structure shown in FIG. 2 includes a row decoder 20 which decodes the input signal to locate the appropriate partial products for that input signal in the memory 22. The output of the memory 22 is fed to sense amplifiers 24 and latches 26. The output of these latches are fed to an adder and delay structure 28. The adder and delay structure 28 includes some programmable elements, around which paths are indicated by dashed lines, such as items indicated by reference numerals 30, 32, and 34 which allow for programmability of the type of filter operation to be performed.
Because there is a limit on the number of filter coefficients that can be held in any physical embodiment of such as memory structure, two or more PFPs are often needed in practical applications. For such applications, each programmable filter processor can be cascaded with other similar PFPs in a manner as shown in FIG. 1. In FIG. 1, a first PFP module 10 has its carry inputs 11 attached to ground 12 and its data inputs 13 attached to receive the input signal. Its data outputs 14 are attached to the carry inputs 15 of a subsequent PFP module 16. All other PFP modules 18 and 20 are similarly connected, and the last PFP module in the chain provides the output sampled signal.
While being in many ways advantageous, this prior approach to filtering high-resolution digital signals using such filters still has the following drawback.
If "n" is the number of bits used to sample the input signal, "N" is the overall number of the filter coefficients, and "p" is the number of bits required for storing a product of an sample by a filter coefficient, then the memory size is found to be 2.sup.n Np. Clearly, each additional bit used to represent the sampled input signal, in order to increase the filter resolution, doubles the required size of the memory. The prior art has failed to bring forth any useful solution to obviate the need for such memory expansion when improved filter accuracy or resolution is sought.